from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
from conDatabase import dataUtils
from getPreCount import getPre
from keras.models import load_model
# 导入 数据库的工具
from conDatabase import dataUtils
import numpy as np
datautils = dataUtils()
# 输出时间
getPre = getPre()
utils = dataUtils()
def job():
    result = datautils.selectXinfo()
    print(result)
    # x = [[32,0.5,0.5,1]]
    # X 是第二天的影响因子
    x = result
    x = np.array(x)
    # 预测 第一段时间数量
    am_one_model = load_model("PrePeopleam_one.h5")
    am_one = am_one_model.predict(x)
    print(int(am_one[0][0]))
    # 预测到的结果
    am_one = int(am_one[0][0])
    # 重新训练模型， 加入最新的数据
    getPre.getAns("am_one")

    # 预测 第二段时间数量
    am_two_model = load_model("PrePeopleam_two.h5")
    am_two = am_two_model.predict(x)
    # 预测到的结果
    am_two = int(am_two[0][0])
    # 重新训练模型， 加入最新的数据
    getPre.getAns("am_two")

    # 预测 第三段时间数量
    pm_one_model = load_model("PrePeoplepm_one.h5")
    pm_one = pm_one_model.predict(x)
    # 预测到的结果
    pm_one = int(pm_one[0][0])
    # 重新训练模型， 加入最新的数据
    getPre.getAns("pm_one")

    # 预测 第四段时间数量
    pm_two_model = load_model("PrePeoplepm_two.h5")
    pm_two = pm_two_model.predict(x)
    # 预测到的结果
    pm_two = int(pm_two[0][0])
    # 重新训练模型， 加入最新的数据
    getPre.getAns("pm_two")

    # 预测 第五段时间数量
    night_model = load_model("PrePeoplenight.h5")
    night = night_model.predict(x)
    # 预测到的结果
    night = int(night[0][0])
    # 重新训练模型， 加入最新的数据
    getPre.getAns("night")

    total = am_one + am_two + pm_one + pm_two + night
    utils.insertPre(am_one, am_two, pm_one, pm_two, total, night)


# BlockingScheduler
scheduler = BlockingScheduler()
scheduler.add_job(job, 'cron',  hour=22, minute=55)
scheduler.start()
